home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 7: Sunsite
/
Linux Cubed Series 7 - Sunsite Vol 1.iso
/
system
/
news
/
inn1.000
/
inn1.4sec-linux-src.tar
/
inn
/
site
/
do-subst.sh
next >
Wrap
Linux/UNIX/POSIX Shell Script
|
1993-01-29
|
2KB
|
85 lines
#! /bin/sh
## $Revision: 1.3 $
## Run subst over a list of files. Get files in and out of source control
## if present.
## Assume no source control.
MODE=none
PLAIN="$*"
CONTROLLED=
BASEDIRNAME=`basename \`pwd\``
if [ -d RCS -a ! -d SCCS ] ; then
# Find out which files are under RCS control.
MODE=rcs
PLAIN=
for I
do
if [ -f RCS/${I},v ] ; then
CONTROLLED="${CONTROLLED} ${I}"
else
PLAIN="${PLAIN} ${I}"
fi
done
test -n "${CONTROLLED}" && co -l -q ${CONTROLLED}
fi
if [ -d SCCS -a ! -d RCS ] ; then
# Find out which files are under SCCS control.
MODE=sccs
PLAIN=
for I
do
if [ -f SCCS/s.${I} ] ; then
CONTROLLED="${CONTROLLED} ${I}"
else
PLAIN="${PLAIN} ${I}"
fi
done
test -n "${CONTROLLED}" && sccs get -e ${CONTROLLED}
fi
## Make an unmodified copy of all files.
for I in ${CONTROLLED} ${PLAIN}; do
rm -f bak.${I}
cp ${I} bak.${I}
done
## Make sure we can write all non-controlled files.
test ! -z "${PLAIN}" && chmod u+w,g+w ${PLAIN}
## Make the list of files, run config over it.
LISTOFFILES=../${BASEDIRNAME}/files.$$
for I in ${PLAIN} ${CONTROLLED} ; do
echo ../${BASEDIRNAME}/${I}
done >${LISTOFFILES}
( cd ../config; make quiet FILE=${LISTOFFILES} )
rm -f ${LISTOFFILES}
# check which files we really changed
for I in ${CONTROLLED} ${PLAIN} ; do
if cmp -s ${I} bak.${I}; then
## No change was made, restore things.
case ${MODE} in
sccs)
test -f SCCS/s.${I} && sccs unedit ${I}
;;
rcs)
test -f $RCS/${I},v && rcs -q -u ${I} && ci -u -q -f ${I}
;;
esac
else
## Check files back into source control, if we have to.
case ${MODE} in
rcs)
echo 'Ran subst from Makefile' | ci -u -q -f ${I}
;;
sccs)
echo 'Ran subst from Makefile' | sccs delget -s ${I}
;;
esac
fi
rm -f bak.${I}
done
exit 0